A concept of ubiquitous computing means that multiple types of networked computing units are involved in everyday life and by communicating with each other enable highly sophisticated ways to improve life in general. The interaction between different types of computing units and/or objects enable not only ubiquitous services for their users, but also give some novel opportunities for systems which are learning from user behavior. Such an opportunity may be used for e.g. so called recommendation systems based on collaborative filtering in which a user receives such information for his/her decision making which is affected by other users' previous experiences.
In order to enabling the exchange of information between computing units and/or objects of the ubiquitous computing systems there is a need to be set up information elements which can be utilized in information exchange. The same in-formation elements can be used for providing highly sophisticated services so that advantages of ubiquitous computing can be seen by the users.
Let's have a look to traditional recommendation systems. The recommendation systems are based into filtering of information based on a predetermined criteria derived from preferences or history of a user or any other entity. Many times the recommendation systems are considered to have a social element involved in the operation due to the fact that collaboration in general is a key issue in the systems. In these systems there are three major challenges: Firstly, user preferences are not necessarily known even to the user himself. Secondly, preferences are seldom commensurate in different domains, e.g. defining preferences for movies may have nothing to do with preferences for travelling. Thirdly, providing any personal information such as preferences to any service potentially threatens individual privacy. Collecting history data threatens privacy even more severely. These are the challenges the presented invention is addressing.
An example of a utilization area of the recommendation systems can e.g. be services provided for mobile computing units. This is due to the fact that since the mobile computing units move around, it is also advantageous from user's point of view to receive recommendations relating to a context of the computing unit. Thus, one can say that recommendations have become essential in creating additional value for mobile service providers. Contexts play a focal role in understanding what the users of a mobile service want or need. Thus, understanding user's context and acting based upon it is of the utmost importance for a mobile service to be successful. On a more general approach, it can be said that there are numerous computational problems, the purpose of which is to predict the behavior of an entity, and for these problems several mathematical methods combined with the recommendation systems are superior. The mathematical methods need also to be used for understanding the context of a user and thus making better and better recommendations thereof.
As already referred above in order to provide recommendation systems it requires exchange of information between the entities. A prior art document US2009228211A1 discloses a recommendation system in which information on user's context, such as daily routines, is collected and by analyzing this history information, with e.g. position information, it is possible to deliver, by the service providers such as shops, recommendations to the user in an intelligent way. Information on the user's context is maintained in a network and context activity is periodically transmitted thereto.
However, the prior art systems do not disclose a solution in such a case in which user preferences are to be exchanged with some other entity and based on that exchange a service is to be provided. Moreover, the prior art solutions do not disclose systems in which several computing units can interact and exchange of information and in response to that determine a value for similarity of the user specific information and on the basis of the similarity value to provide services to a user.